#include <unistd.h>
#include <stdio.h>

void zombie_test()
{
  pid_t id = fork();
  if(id > 0)
  {
    int cnt = 10;
    while(cnt--)
    {
      printf("Father, pid:%d, ppid:%d , cnt:%d \n", getpid(), getppid(), cnt);
      sleep(1);
    }
  }
  else if(id == 0)
  {
    int cnt = 5;
    while(cnt--)
    {
      printf("Child, pid:%d, ppid:%d , cnt:%d \n", getpid(), getppid(), cnt);
      sleep(1);
    }
  }
  else
  {  }
}

void orphan_test()
{
  pid_t id = fork();
  if(id > 0)
  {
    int cnt = 5;
    while(cnt--)
    {
      printf("Father, pid:%d, ppid:%d , cnt:%d \n", getpid(), getppid(), cnt);
      sleep(1);
    }
  }
  else if(id == 0)
  {
    int cnt = 600;
    while(cnt--)
    {
      printf("Child, pid:%d, ppid:%d , cnt:%d \n", getpid(), getppid(), cnt);
      sleep(1);
    }
  }
  else
  {  }
}

int main()
{
  //zombie_test();
  orphan_test();
  return 0;
}
